1. Field of the Invention
The present invention generally concerns computer architectures, and in more particular concerns an architecture that provides intra-device interfacing via network-like messaging.
2. Background Information
A typical computer includes a main board or motherboard that includes one or more processors and provides various hardware interfaces for connecting peripheral devices to the motherboard. For example, personal computers (PCs) generally include a set of expansion “slots” into which peripheral cards can be inserted to provide certain functions, such as video, network interfacing, modem, auxiliary disk control, etc. Under conventional architectures, communication between the processor and the peripheral cards is enabled through a communications bus, such as the PCI bus or ISA bus. Accordingly, software application programs can communicate with peripheral devices through either direct system calls (e.g., direct writes or reads from memory) or through calls made to an operating system, which then will pass or retrieve the desired data either directly or through a device driver.
There are several problems with the conventional architecture. For example, some multiprocessor computer architectures do not enable peripheral devices to be shared between the processors, in a manner that scales across computers. Other multiprocessor architectures that allow such sharing present bus contention problems that may restrict access to the peripheral devices. Another problem with conventional architectures, such as the PCI bus, is that the bus speeds are insufficient to take advantage of higher-bandwidth communication links (e.g., present Gigabit/sec Ethernet networks and future 10 Gigabit/sec networks.
Another problem is security; configuration information can often be easily changed such by unauthorized users that the resource conflicts or other problems arise. For example, conventional bus architectures do not have any built-in security measures. As a result, unauthorized users may delete or corrupt bus and/or resource configuration information. This problem is exacerbated by today's distributed environment, wherein changes on one machine may adversely effect other machines connected to the network.